package com.tim.service.Impl;

import com.tim.dao.Impl.PersonDaoImpl;
import com.tim.dao.PersonDao;
import com.tim.pojo.DataResult;
import com.tim.pojo.Person;
import com.tim.service.PersonService;

import java.sql.SQLException;
import java.util.List;

/**
 * 作者：Tim
 * 时间：2021/4/28 16:07
 */
public class PersonServiceImpl implements PersonService {
    PersonDao personDao = new PersonDaoImpl();
    @Override
    public int deletePerson(String personID) {
        try {
            int id= Integer.parseInt(personID);
            return personDao.deletePerson(id);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return 0;
    }

    @Override
    public int addPerson(Person person) {
        try {
            return personDao.addPerson(person);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return 0 ;
    }

    @Override
    public Person selectOne(String personID) {
        try {
            int id = Integer.parseInt(personID);
            return personDao.selectOne(id);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return null;
    }

    @Override
    public int updatePerson(Person person) {
        try {
            return personDao.updatePerson(person);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return 0;
    }

    @Override
    public List<Person> searchPerson(String personName) {
        try {
            return personDao.searchPerson(personName);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        return null;
    }

    @Override
    public int deleteAll(String[] ids) {
        //1、直接循环调用删除单个的方法(但是要考虑事务问题。解决方案：动态拼接Sql语句)
        for (String id : ids) {
            int count = deletePerson(id);
        }
        return ids.length;
    }

    @Override
    public int addAllPerson(List<String[]> data) {
        return 0;
    }

    @Override
    public DataResult limit(String currentPage, String pageSize, String personName) {
        try {
            int p=1;//当前页
            int s=5; //每页条数
            if(currentPage!=null){
                p = Integer.parseInt(currentPage);
            }
            if(pageSize!=null){
                s =Integer.parseInt(pageSize);
            }
            List<Person> personList=personDao.limit(p,s,personName);
            //因为现在使用的是layui的表格渲染，所以返回到前端的数据使用要求的 1、要求code中0表示成功     2、如果开启分页那么必须要返回一个count的参数，表示总条数
            DataResult dataResult = new DataResult(0,"查询成功",personList, personDao.count(personName));
            return dataResult;
        } catch (Exception e) {
            e.printStackTrace();
        }
        DataResult dataResult = new DataResult(100,"数据接口错误");
        return dataResult;
    }
}
